import json

import matplotlib.pyplot as plt
from wordcloud import WordCloud
import os


def read_folder_data(folder_path: str) -> list:
    """
    读取文件夹下所有文件->返回文件路径，供后续处理
    :param folder_path: 文件夹路径
    :return: 文件夹下所有文件   list
    :time: 2024/05/15
    :author: 罗邓
    """
    data_list = []  # 存储所有文件的数据->list ，每个元素为文件路径
    # 遍历文件夹下所有文件
    for file_name in os.listdir(folder_path):
        # 拼接路径
        file_path = os.path.join(folder_path, file_name)
        # 判断是否为文件->是文件才读取
        if os.path.isfile(file_path):
            data_list.append(file_path)
    return data_list


# 词频统计算法
def count_words(text):
    words = text.lower().split()  # 将文本拆分成单词列表，全部转换为小写
    word_count = {}
    for word in words:
        if word in word_count:
            word_count[word] += 1
        else:
            word_count[word] = 1
    return word_count


# 可以使用Python中的第三方库wordcloud生成词云：
def generate_wordcloud(text):
    # 创建WordCloud对象
    wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)
    # 绘制词云图
    plt.figure(figsize=(10, 5))
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.axis('off')
    plt.show()


# python中读取json文件的方法
def read_json_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        data_return = json.load(f)
        return data_return


def saveJson(data, filename) -> bool:
    """
        保存字典数据到json文件
        :param data: 要保存的数据
        :param filename: 保存的文件名
        :return: bool
        :time: 2024/05/15
        :author: 罗邓
     """
    try:
        with open(filename, "w", encoding="utf-8") as f:
            json.dump(data, f, ensure_ascii=False)
            print(f"{filename}，数据保存成功^v^")
            return True
    except Exception as e:
        print(f"{filename}，数据保存失败^~^")
        return False
